// pages/zhuye_detail/fM/play/play.js
Page({
  data: {
    fmData: null,
    isPlaying: false,
    currentTime: '00:00',
    duration: '00:00',
    progress: 0
  },

  onLoad(options) {
    // 创建音频上下文
    this.audioContext = wx.createInnerAudioContext()
    
    try {
      if (!options.fmData) {
        console.error('未接收到FM数据')
        this.showError('数据加载失败')
        return
      }

      const fmData = JSON.parse(decodeURIComponent(options.fmData))
      console.log('接收到的FM数据:', fmData)
      
      if (!fmData) {
        console.error('FM数据解析为空')
        this.showError('数据格式错误')
        return
      }

      // 设置导航栏标题为音频标题
      wx.setNavigationBarTitle({
        title: fmData.title || 'FM播放'
      })

      // 如果没有描述，根据标题生成描述
      if (!fmData.description || fmData.description.trim() === '') {
        fmData.description = this.generateDescription(fmData.title)
      }

      this.setData({ fmData })
      
      // 初始化音频
      if (fmData.filename) {
        console.log('准备播放音频:', fmData.filename)
        this.audioContext.src = fmData.filename
        this.initAudioEvent()
      } else {
        console.error('音频地址无效:', fmData)
        this.showError('音频地址无效')
      }
    } catch (error) {
      console.error('数据解析错误:', error)
      this.showError('数据加载失败')
    }
  },

  // 根据标题生成描述
  generateDescription(title) {
    if (!title) return '暂无描述'

    // 心理相关关键词映射
    const keywordMap = {
      '压力': '帮助你缓解压力，找到内心的平静。通过专业的指导，学会调节心理压力，保持良好的心态。',
      '焦虑': '缓解焦虑情绪，重获内心平静。通过系统的讲解，帮助你了解焦虑的成因和应对方法。',
      '情绪': '学会管理情绪，提升心理健康。通过专业的分析，掌握情绪调节的技巧和方法。',
      '心理': '提升心理健康水平，培养积极心态。通过专业的心理知识分享，帮助你更好地了解自己。',
      '抑郁': '走出抑郁困扰，重拾生活信心。通过专业的指导，学会积极面对生活中的挑战。',
      '睡眠': '改善睡眠质量，享受健康生活。通过科学的方法，帮助你建立良好的睡眠习惯。',
      '沟通': '提升沟通技巧，改善人际关系。通过实用的技巧分享，帮助你更好地与他人交流。',
      '成长': '促进个人成长，实现自我提升。通过系统的引导，帮助你在人生道路上不断进步。',
      '自信': '建立自信心态，展现最好的自己。通过专业的指导，帮助你发现并发挥自身优势。',
      '解析': '深入分析问题本质，找到解决方案。通过专业的讲解，帮助你更好地理解和应对问题。'
    }

    // 遍历关键词，查找标题中包含的关键词
    const keywords = Object.keys(keywordMap)
    for (let i = 0; i < keywords.length; i++) {
      const keyword = keywords[i]
      if (title.indexOf(keyword) !== -1) {
        return keywordMap[keyword]
      }
    }

    // 默认描述
    return '本节目为您带来专业的心理健康指导，帮助您更好地了解自己，提升心理健康水平。通过专业的讲解和分析，为您提供实用的建议和方法。'
  },

  showError(message) {
    wx.showToast({
      title: message,
      icon: 'none',
      duration: 2000
    })
  },

  initAudioEvent() {
    this.audioContext.onPlay(() => {
      console.log('音频开始播放')
      this.setData({ isPlaying: true })
    })

    this.audioContext.onPause(() => {
      console.log('音频暂停播放')
      this.setData({ isPlaying: false })
    })

    this.audioContext.onTimeUpdate(() => {
      const currentTime = this.formatTime(this.audioContext.currentTime)
      const duration = this.formatTime(this.audioContext.duration)
      const progress = (this.audioContext.currentTime / this.audioContext.duration) * 100

      this.setData({
        currentTime,
        duration,
        progress
      })
    })

    this.audioContext.onError((err) => {
      console.error('音频播放错误:', err)
      let errorMsg = '音频播放失败'
      switch (err.errCode) {
        case 10001:
          errorMsg = '系统错误'
          break
        case 10002:
          errorMsg = '网络错误'
          break
        case 10003:
          errorMsg = '文件错误'
          break
        case 10004:
          errorMsg = '格式错误'
          break
      }
      this.showError(errorMsg)
    })

    // 自动播放
    this.audioContext.play()
  },

  togglePlay() {
    if (this.data.isPlaying) {
      this.audioContext.pause()
    } else {
      this.audioContext.play()
    }
  },

  formatTime(seconds) {
    if (!seconds) return '00:00'
    const min = Math.floor(seconds / 60)
    const sec = Math.floor(seconds % 60)
    return `${min.toString().padStart(2, '0')}:${sec.toString().padStart(2, '0')}`
  },

  onSliderChange(e) {
    const position = e.detail.value / 100 * this.audioContext.duration
    this.audioContext.seek(position)
  },

  handleImageError() {
    this.setData({
      'fmData.img': '/images/default.png' // 设置默认图片
    })
  },

  onUnload() {
    console.log('页面卸载，停止播放')
    // 检查 audioContext 是否存在再销毁
    if (this.audioContext) {
      this.audioContext.stop()
      this.audioContext.destroy()
    }
  }
})